1. Technical Field
The present invention relates in general to improved grid computing and, in particular, to managing and enforcing compliance with service level agreements in a grid environment. Still more particularly, the present invention relates to monitoring timely compliance of the grid environment with the service level agreement for processing a job and controlling restitution for non-compliance.
2. Description of the Related Art
Ever since the first connection was made between two computer systems, new ways of transferring data, resources, and other information between two computer systems via a connection continue to develop. In typical network architectures, when two computer systems are exchanging data via a connection, one of the computer systems is considered a client sending requests and the other is considered a server processing the requests and returning results. In an effort to increase the speed at which requests are handled, server systems continue to expand in size and speed. Further, in an effort to handle peak periods when multiple requests are arriving every second, server systems are often joined together as a group and requests are distributed among the grouped servers. Multiple methods of grouping servers have developed such as clustering, multi-system shared data (sysplex) environments, and enterprise systems. With a cluster of servers, one server is typically designated to manage distribution of incoming requests and outgoing responses. The other servers typically operate in parallel to handle the distributed requests from clients. Thus, one of multiple servers in a cluster may service a client request without the client detecting that a cluster of servers is processing the request.
Typically, servers or groups of servers operate on a particular network platform, such as Unix or some variation of Unix, and provide a hosting environment for running applications. Each network platform may provide functions ranging from database integration, clustering services, and security to workload management and problem determination. Each network platform typically offers different implementations, semantic behaviors, and application programming interfaces (APIs).
Merely grouping servers together to expand processing power, however, is a limited method of improving efficiency of response times in a network. Thus, increasingly, within a company network, rather than just grouping servers, servers and groups of server systems are organized as distributed resources. There is an increased effort to collaborate, share data, share cycles, and improve other modes of interaction among servers within a company network and outside the company network. Further, there is an increased effort to outsource nonessential elements from one company network to that of a service provider network. Moreover, there is a movement to coordinate resource sharing between resources that are not subject to the same management system, but still address issues of security, policy, payment, and membership. For example, resources on an individual's desktop are not typically subject to the same management system as resources of a company server cluster. Even different administrative groups within a company network may implement distinct management systems.
The problems with decentralizing the resources available from servers and other computing systems operating on different network platforms, located in different regions, with different security protocols and each controlled by a different management system, has led to the development of Grid technologies using open standards for operating a grid environment. Grid environments support the sharing and coordinated use of diverse resources in dynamic, distributed, virtual organizations. A virtual organization is created within a grid environment when a selection of resources, from geographically distributed systems operated by different organizations with differing policies and management systems, is organized to handle a job request.
While grid technologies solve some of the problems with decentralizing disparate computing systems to create a virtual organization of resources, grid technologies do not solve all the problems associated with decentralized resources. One of these problems left unsolved is how to monitor and enforce service level agreements (SLAs), which have become the norm in the computer industry, for designating the expected performance by information technology providers. Grid technology providers, also called grid vendors, make no guarantee except for “here is the environment that you asked for.” This guarantee, however, is limited and does not take into account the timeliness required for some grid jobs. Further, this guarantee is limited because there is not a mechanism to detect whether the guarantee is met or to provide compensation to the customer if the guarantee is not met.
Therefore, in view of the foregoing, there is a need for a method, system, and program for managing and enforcing compliance with SLAs for grid jobs executing in a grid environment. In particular, there is a need for managing compliance with SLAs based on the timeliness required of a particular type of grid job. Further, there is a need for controlling restitution when a grid environment does not deliver the response or result of a grid job in compliance with the SLA.